The present invention relates generally to the processing of packets in computer networks, wireless data networks, and network components of computer operating systems, and more particularly to improvements to the Transmission Control Protocol (TCP) on wired and wireless Wide Area Networks (WANs).
Internet Protocol (IP) is the most widely used protocol in today's computer and data networks. Running on top of IP, TCP has become the dominant transport protocol for applications requiring reliable packet transmission. Even for applications that do not require reliable packet transmission, such as video and voice applications, TCP has gained popularity on WANs because compared to UDP, TCP traffic is more likely to be able to pass the firewalls and other security devices widely deployed in today's networks. Detailed information about TCP and IP can be found in RFC793 and RFC791.
In addition to reliable packet transmission, TCP provides flow control that adapts to the dynamic bandwidth changes in networks. Although, TCP has been scaled with the rapid expansion of the internet, it has become evident that TCP does not work well on long latency and high loss network links, especially wireless data networks. TCP is not able to use the available bandwidth efficiently in these types of networks because the assumption that packet loss is mainly due to network congestion is not always true. For transactional applications and real time applications, this inefficiency in TCP introduces unacceptable latency and throughput that does not meet the applications' needs.
To improve TCP performance in these types of networks, prior art solutions include scaling up the TCP window to deal with the so-called long fat pipe (long latency and high bandwidth network links) and redefining certain IP fields and/or TCP fields in order to better judge packet loss on the TCP sender side. Though these solutions provide improvements over standard TCP on certain networks, they all require deploying a modified TCP stack on the TCP sender and receiver sides. This requirement increases both the difficulty and cost of their deployment. In addition, the prior art solutions rely on RTO (retransmission timeout, refer to RFC793) to detect continuous packet losses and to trigger retransmissions. The resulting lagged retransmission and reduction of throughput does not meet the requirements of transactional or real time applications.